package noema.processManagement;

import noema.dataModel.Patient;

public interface ProcessManagement {
	/**
	 * Inizia un nuovo processo di degenza, istanzia una nuova sessione per il
	 * paziente solamente se non è già presente un'altra sessione associata al
	 * paziente
	 * 
	 * @param healthCardId
	 * @param name
	 * @param surname
	 * @return
	 */
	public Patient startHospitalization(String healthCardId, String name,
			String surname);

	/**
	 * solamente un pathway per tipologia può essere attivo per un paziente,
	 * cioè non è possibile che ad un paziente siano associati due processi
	 * attivi per ictus
	 * 
	 * @param p
	 * @param pathwayId
	 *            id del processo che rappresenta il pathway
	 */
	public void startPathWay(Patient p, String pathwayId);

	/**
	 * Termina tutti i processi attivi presenti nella sessione dedicata al paziente
	 * @param p
	 */
	public void abortHospitalization(Patient p);

	/**
	 * Terimina un solo pathway associato ad un paziente 
	 * @param p
	 * @param pathwayId
	 */
	public void abortPathway(Patient p, String pathwayId);

}
